package com.briup.day25;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Test_TCPServer {
    public static void main(String[] args) throws IOException {
        /*
        * 搭建TCP服务器端
        * 1.创建一个ServerSocket对象（服务器对象） 并指定端口号（方便客户端连接）
        * 2.ServerSocket调用accept方法 获取套接字（得到客户端）
        * 3.创建IO流 getInputStream 接受数据 getOutputStream 发送数据
        * 4.释放资源*/

//        1.创建一个ServerSocket对象（服务器对象） 并绑定端口号
        ServerSocket server = new ServerSocket(8888);
        System.out.println("服务器启动成功");
//        2.获取套接字
//        accept如果接受到客户端连接获取客户端通信对象（套接字）
//        如果没有接受到客户端连接 服务器会一直堵塞(运行后会在这阻塞)
        Socket socket = server.accept();
//        3.创建IO流对象
//        getInputStream接受客户端数据
//        getOutputStream给客户端发送数据
        InputStream is = socket.getInputStream();
        OutputStream os = socket.getOutputStream();
//         4.先接受客户端发送的数据
        byte[] buff = new byte[1024];
        int len =  is.read(buff);//来进行读取  输入流读取数据
        System.out.println(new String(buff,0,len));
        System.out.println("接受成功");
//        5.给客户端发生数据
        System.out.println("即将给客户端发送数据");
        os.write("hello 客户端".getBytes());
        System.out.println("发生成功");
//        6.释放资源
        os.close();
        is.close();
        socket.close();
        server.close();

    }
}
